﻿using System;
using System.Collections.Generic;
using Autodesk.Revit.DB;
using YArchitech.Revit.Electric.Common;

namespace ElectricDim
{
	public class ElectricMark
	{
		public static List<DbFamilyObject> WireMark(Autodesk.Revit.DB.Document doc)
		{
			return new FamilyLibDataAssist(doc, "ElectricMark").LoadFamilyDatas(new ElectricMarkFilter(1));
		}

		public static List<DbFamilyObject> WireNumMarkOfTwo(Autodesk.Revit.DB.Document doc)
		{
			return new FamilyLibDataAssist(doc, "ElectricMark").LoadFamilyDatas(new ElectricMarkFilterEx(2, 1));
		}

		public static List<DbFamilyObject> WireNumMarkOfThree(Autodesk.Revit.DB.Document doc)
		{
			return new FamilyLibDataAssist(doc, "ElectricMark").LoadFamilyDatas(new ElectricMarkFilterEx(2, 2));
		}

		public static List<DbFamilyObject> WireNumMarkOfMore(Autodesk.Revit.DB.Document doc)
		{
			return new FamilyLibDataAssist(doc, "ElectricMark").LoadFamilyDatas(new ElectricMarkFilterEx(2, 3));
		}

		public static List<DbFamilyObject> WireLoopMark(Autodesk.Revit.DB.Document doc)
		{
			return new FamilyLibDataAssist(doc, "ElectricMark").LoadFamilyDatas(new ElectricMarkFilter(3));
		}

		public static List<DbFamilyObject> CableTrayMark(Autodesk.Revit.DB.Document doc)
		{
			return new FamilyLibDataAssist(doc, "ElectricMark").LoadFamilyDatas(new ElectricMarkFilter(4));
		}

		public static List<DbFamilyObject> LightningMark(Autodesk.Revit.DB.Document doc)
		{
			return new FamilyLibDataAssist(doc, "ElectricMark").LoadFamilyDatas(new ElectricMarkFilter(5));
		}

		public static List<DbFamilyObject> GroundingLineMark(Autodesk.Revit.DB.Document doc)
		{
			return new FamilyLibDataAssist(doc, "ElectricMark").LoadFamilyDatas(new ElectricMarkFilterEx(6, 1));
		}

		public static List<DbFamilyObject> GroundingPoleMark(Autodesk.Revit.DB.Document doc)
		{
			return new FamilyLibDataAssist(doc, "ElectricMark").LoadFamilyDatas(new ElectricMarkFilterEx(6, 2));
		}

		public static List<DbFamilyObject> LampMark(Autodesk.Revit.DB.Document doc)
		{
			return new FamilyLibDataAssist(doc, "ElectricMark").LoadFamilyDatas(new ElectricMarkFilter(7));
		}

		public static List<DbFamilyObject> SwitchBoxMark(Autodesk.Revit.DB.Document doc)
		{
			return new FamilyLibDataAssist(doc, "ElectricMark").LoadFamilyDatas(new ElectricMarkFilter(8));
		}

		private const string dbTableName = "ElectricMark";
	}
}
